package application;

import java.util.List;

import model.Category;
import model.Person;
import model.Sale;
import abstractfactory.Factory;
import dao.Client.ClientDAO;
import dao.Item.ItemDAO;
import dao.Product.ProductDAO;
import dao.Sale.SaleDAO;

public class Application4 {
	public static void main(String args[]){
		long x = System.currentTimeMillis();
		
		SaleDAO saleDAO = Factory.getInstance("JPA").createSaleDAO();
		ClientDAO clientDAO = Factory.getInstance("JPA").createClientDAO();
		ProductDAO productDAO = Factory.getInstance("JPA").createProductDAO();
		ItemDAO itemDAO = Factory.getInstance("JPA").createItemDAO();
		
		//exemplo da consulta 1
		List<Category> cats = (List<Category>) productDAO.catNome();
		System.out.println("exemplo da consulta 1");
		for(Category cat:cats)
			System.out.println("Categotia:"+cat.getName());
		//exemplo da consulta 2
		List<Person> perns = (List<Person>) clientDAO.pegarPessoa();
		System.out.println("exemplo da consulta 2");
		for(Person p:perns)
			System.out.println("Pessoa:"+p.getEmail());
		//exemplo da consulta 3
		Long item = (Long) itemDAO.totalItem();
		System.out.println("exemplo da consulta 3");
		System.out.println("quantidade:"+item);
		//exemplo da consulta 4
		List<Sale> s = (List<Sale>) saleDAO.pegarSale();
		System.out.println("exemplo da consulta 4");
		for(Sale sa:s)
			System.out.println("Venda:"+sa.getCard().getId());
		//exemplo da consulta 5
		List<Object[]> ps = (List<Object[]>) productDAO.pegarProduct();
		System.out.println("exemplo da consulta 5");
		for (int i =0; i<ps.size(); i++) {
			Object[] agregado = (Object[]) ps.get(i);
			String nome = (String)agregado[0];
			String nome2 = (String)agregado[1];
			System.out.println("Category:"+nome+" Product:"+nome2);			
		}
		System.out.println("\n\n");
		System.out.print("Execution Time (ms): ");
		System.out.print(System.currentTimeMillis()-x);
		System.out.println("\n\n");
	}
}